redis-cli
- redis-cli -r (repeat)表示命令执行多次,
xxx@ubuntu:~$ redis-cli -r 3 ping
PONG
PONG
PONG
- -i (interval)表示每隔几秒执行一次命令,-i和-r选项必须一起使用,-i 的单位是秒,不支持毫秒,可以使用小数表示毫秒,-i0.001表示10毫秒。
xxx@ubuntu:~$ redis-cli -r 5 -i 1 ping
PONG
PONG
PONG
PONG
PONG
- -x 选项代表从标准输入读取数据作为redis-cli的最后一个参数,
xxx@ubuntu:~$ echo "world" | redis-cli -x set hello
OK
xxx@ubuntu:~$ redis-cli get hello
"world\n"
xxx@ubuntu:~$
- -c (cluster) 选项是连接Redis Cluster节点时需要使用的。
- -a (auth)有了这个选项就不需要手动输入auth命令。
- --slave 把当前客户端模拟成当前redis节点的从节点。
xxx@ubuntu:~$ redis-cli --slave // 开启一个客户端
SYNC with master, discarding 555 bytes of bulk transfer...
SYNC done. Logging commands from master.
xxx@ubuntu:~$ redis-cli set name ziyan // 另外一个客户端做更新操作
OK
xxx@ubuntu:~$ redis-cli set age 26
OK
xxx@ubuntu:~$
xxx@ubuntu:~$ redis-cli --slave // 第一个客户端会收到更新操作
SYNC with master, discarding 555 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"PING"
"SELECT","0"
"set","name","ziyan"
"PING"
"set","age","26"
--rdb 选项会请求redis实例生成并发送rdb持久化文件,保存在本地。
--pipe 选用用于将命令封装成Redis通信协议定义的数据格式,批量发送给redis。
--stat 选项可以实时获取Redis的重要统计信息
redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
15 798.28K 1 0 67 (+0) 15
15 798.28K 1 0 68 (+1) 15
15 798.28K 1 0 69 (+1) 15
15 798.28K 1 0 70 (+1) 15
15 798.28K 1 0 71 (+1) 15
redis-server
redis-server 除了启动redis之外,--test-memory : 用来检测当前操作系统能否稳定地分配指定容量的内存给redis,整个内存检测的时间比较长,当输出passed this test说明内存检测完毕。
redis-server --test-memory 1024
redis-benchmark
- -c (client)选项代表客户端的并发数量(默认50)。
- -n (num) 选项代表客户端请求总量。(默认100000)
redis-benchmark -c 100 -n200000 // 代表100个客户端同时请求redis,一共执行200000次。
redis-benchmark会对各类数据结构的命令进行测试,并给出性能指标。如下所示,一共执行了2000次lpush操作,在0.06s完成,每个数据的请求量是3个字节,99.7%的命令执行时间小于1毫秒,Redis每秒可以处理30769.23次lpush请求。
redis-benchmark -c 10 -n 2000
====== LPUSH ======
2000 requests completed in 0.06 seconds
10 parallel clients
3 bytes payload
keep alive: 1
97.70% <= 1 milliseconds
99.70% <= 2 milliseconds
100.00% <= 2 milliseconds
30769.23 requests per second
====== LRANGE_600 (first 600 elements) ======
2000 requests completed in 0.25 seconds
10 parallel clients
3 bytes payload
keep alive: 1
91.20% <= 1 milliseconds
100.00% <= 1 milliseconds
7968.13 requests per second
- -q 选项仅仅显示redis-benchmark的request per second信息。
xxx@ubuntu:~$ redis-benchmark -c 50 -n 20000 -q
PING_INLINE: 56497.18 requests per second
PING_BULK: 56338.03 requests per second
SET: 49627.79 requests per second
GET: 52910.05 requests per second
INCR: 56179.77 requests per second
LPUSH: 56179.77 requests per second
LPOP: 40733.20 requests per second
SADD: 51679.59 requests per second
SPOP: 50505.05 requests per second
LPUSH (needed to benchmark LRANGE): 37735.85 requests per second
LRANGE_100 (first 100 elements): 19607.84 requests per second
LRANGE_300 (first 300 elements): 9896.09 requests per second
LRANGE_500 (first 450 elements): 8285.00 requests per second
LRANGE_600 (first 600 elements): 6191.95 requests per second
MSET (10 keys): 31446.54 requests per second
- -r (random) 在一个空的redis上执行了redis-bench mark会发现只有3个键,如果想向redis插入更多的键,使用-r选项,-r1000代表只对后四位做随机处理。
127.0.0.1:6379> dbsize
(integer) 3
127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "mylist"
3) "key:__rand_int__"
127.0.0.1:6379>
redis-benchmark -c 50 -n 20000 -q -r 1000
127.0.0.1:6379> dbsize
(integer) 2001
127.0.0.1:6379> scan 0
1) "1792"
2) 1) "counter:000000000431"
2) "key:000000000766"
3) "key:000000000644"
4) "key:000000000257"
5) "key:000000000174"
6) "key:000000000497"
7) "counter:000000000861"
8) "counter:000000000443"
9) "counter:000000000827"
10) "counter:000000000285"
- -t 选项可以对指定命令进行基准测试
redis-benchmark -t get,set -q
SET: 57372.34 requests per second
GET: 51203.28 requests per second